package com.smartmedical.patient.userInquiry.mapper;

import com.smartmedical.patient.userInquiry.domain.dto.param.EvaluateParam;
import com.smartmedical.patient.userInquiry.domain.entity.*;
import com.smartmedical.patient.userInquiry.domain.vo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface InquiryMapper {


    List<DoctorEntity> doctorEntity(@Param("deptId") int deptId);
    DoctorCommentCount doctorCommentCount(@Param("doctorId") Integer doctorId);

    List<DoctorObtainGift> findDoctorObtainGift(@Param("doctorId") Integer doctorId);

    Gift giftVo(@Param("giftId") int giftId);

    List<DoctorEvaluate> doctorEvaluate(@Param("doctorId") Integer doctorId);

    UserEntity userEntity(@Param("userId") int userId);

    DoctorEntity findDoctorInfo(@Param("doctorId") Integer doctorId);



    DoctorCharge doctorCharge(@Param("id") Integer id);

    void insert(@Param("evaluateParam") EvaluateParam evaluateParam, @Param("userId") Long userId);

    List<GiftVo> findGiftList();

    String getDoctorIMAccount(@Param("doctorId") int doctorId);

    String followDoctor(UserDoctorFollow userDoctorFollow);

    boolean cancelFollow(@Param("userId") Long userId, @Param("doctorId") int doctorId);

    void endInquiry(@Param("recordId") int recordId);

    List<InquiryRecordVo> findHistoryInquiryRecord();

    DoctorEvaluateVo findDoctorEvaluate(@Param("recordId") int recordId);

    List<ChatContentEntity> findInquiryRecordList(@Param("inquiryId") int inquiryId);

    List<CommentVo> findDoctorEvaluateList(@Param("doctorId") int doctorId);

    InquiryRecordVo findCurrentInquiryRecord(@Param("userId") Long userId);

    InquiryRecord inquiryRecord(@Param("inquiryRecordId") int inquiryRecordId);

    void addDoctorObtainGift(DoctorObtainGift doctorObtainGift);

    DoctorObtainGift doctorObtainGift(@Param("doctorId") int doctorId);

    void updDoctorObtainGift(DoctorObtainGift doctorObtainGift);

    void addDoctorAskCount(DoctorAskCount doctorAskCount);

    void updDoctorAskCount(DoctorAskCount doctorAskCount);

    DoctorAskCount getDoctorAskCount(@Param("doctorId") int doctorId);

    InquiryRecord startInquiryRecord(@Param("recordId") int recordId,@Param("status") int status);

    String selectUserinfo(@Param("acceptUserId") Integer acceptUserId);

    String selectDoctorinfo(@Param("sendUserId") Integer sendUserId);
}
